package com.qianying.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.*;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 
 * </p>
 *
 * @author zhangcr
 * @since 2025-07-28
 */
@Data
@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class OrderRequirementsDTO implements Serializable {

    /**
     * 主键
     */
    private Long id;

//    /**
//     * order_id
//     */
//    private Long orderId;

    /**
     * 联系人
     */
    private String contacts;

    /**
     * 联系电话
     */
    private String phone;

    /**
     * 紧急程度
     */
    private String urgency;

    /**
     * 希望维修时间
     */
    private LocalDateTime hopeRepairTime;

    /**
     * 希望维修时间
     */
    public void setHopeRepairTime(LocalDateTime hopeRepairTime) {
        this.hopeRepairTime = hopeRepairTime;
        this.isHopeRepairTimePresent = true; // 标记字段已传递
    }

    /**
     * 标记字段是否被传递（用于区分未传值 vs 显式 null）
     */
    @JsonIgnore
    private boolean isHopeRepairTimePresent;

    /**
     * 验收方式
     */
    private String acceptanceMethod;

    /**
     * 备注
     */
    private String remark;

    /**
     * 施工要求[  1-夜间施工,2-需要办证,3-需要购买公众险,4-需要购买师傅意外险,5-高空作业,6-其他 ]
     */
    private String constructionRequirements;

    /**
     * 施工要求备注
     */
    private String constructionRequirementsRemark;

    /**
     * 物料提供方式[ 1-我方提供,2-自购,3-其他 ]
     */
    private String materialSupplyMethod;

    /**
     * 物料提供方式备注
     */
    private String materialSupplyMethodRemark;


    /**
     * 附件材料图片集合
     */
    private List<OrderRequirementsImgDTO> imgList;

    /**
     * 服务项目列表
     */
    private List<OrderRequirementsServiceDTO> serviceList;

}
